package vista.ventanaEstadoTarea;

import java.awt.event.ActionEvent;
import java.util.Date;

import javax.swing.JOptionPane;

import modelo.exception.SameStateException;
import modelo.exception.StatusChangeException;

/**
 * @author Cristian
 * extiende de ButtonAction.
 * */
public class BotonCerrarTarea extends ButtonAction{
	
	//Constructor *********************************************************** //
	public BotonCerrarTarea(VentanaTarea modelo){
		super(modelo);
	}
	
	/**
	 * Boton que determina el estado de la tarea.
	 * Cambia el estado de la tarea a Cerrado.
	 * Cambia al estado Cerrado en cualquiera de los estado, menos en el de Finalizado en
	 * este caso lanza una excepcion.
	 * Escribe en un txt la fecha en la que se cerro.
	 * Modifica el label de estado.
	 * @exception SameStateException.
	 * @exception StatusChangeException.
	 * */
	public void actionPerformed(ActionEvent e) {
		try {
			Date dateCerrado = new Date();
			this.ventana.getModelo().cerrarTarea();
			this.ventana.getEstado().setText(this.ventana.getModelo().getEstado().getNombre());
			this.escribir("TAREA CERRADA: "+ dateCerrado);
			
		} catch (SameStateException e1) {
			JOptionPane.showMessageDialog(this.ventana.getFrame().getContentPane(), "No se puede cambiar al mismo estado",
					"Error", JOptionPane.ERROR_MESSAGE);

		} catch (StatusChangeException e1) {
			JOptionPane.showMessageDialog(this.ventana.getFrame().getContentPane(), "No se puede cambiar de estado",
					"Error", JOptionPane.ERROR_MESSAGE);
		}
	}

}

